文章82
标签28
分类8

hexo 迁移

好久都没有更新博客了,因为数据迁移的关系,很多东西需要重新部署。

在重新部署的过程中遇到了很多坑,如果你的源代码迁移到了一台新的设备上。你需要准备一些事情。

添加 SSH密钥

添加git的SSH密钥,会让你事半功倍。

1.查看是否已经配置

首先确认你本地是否已经生成了SSH密钥。我不太习惯在终端打开文件,所以你可以像我一样 command+空格,调出全局搜索。

~/.ssh 

查看目录下是否有两个文件 id_rsaid_rsa.pub,如果没有的话,则进行下一步,如果有的话直接看第三步。

2. 重新配置

配置账户
# 用户名,建议拼音或英文
git config --global user.name "account name"
# 邮箱地址
git config --global user.email "account email"
生成秘钥
# 上面配置的邮箱地址
ssh -keygen -t rsa -C "account email"

然后一路回车,最后出现一个气泡图,就表示生成成功了。
回到第一步,打开 ./ssh 文件夹,用编辑器查看刚刚生成的 id_rsa.pub

复制里面的内容,等会我们会用到的。

3.添加密钥

点击进入 github 添加 SSH ,新增SSH keys。

title 是keys的名称,由自己自定义。

key 里面的内容就是刚刚我们复制的内容,粘贴进来就可以了。

安装hexo

安装 Hexo 的前提是安装 Node 环境, 如何安装 Node 环境,网上有很多教程,这里就不多说了。

如果在尝试安装 Hexo 的过程中出现 EACCES 权限错误,请遵循 由 npmjs 发布的指导 修复该问题。强烈建议 不要 使用 root、sudo 等方法覆盖权限。

我比较简单粗暴,我直接使用的就是 sudo, 提升权限安装。

sudo npm install -g hexo-cli

打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local,然后回车打开文件夹。

可以在 /usr/local/lib/node_modules 中看到刚刚安装好的 hexo-cli

在控制台输出 hexo -v,如果能看到 hexo 版本信息,那就表示安装成功了。

Hexo 问题

hexo-deployer-git 版本问题

老规矩,hexo 一键三连

# 清除 hexo 缓存
hexo clean

# 生成静态文件
hexo g

# 部署hexo
hexo d

在部署阶段,可能会有错误git提交错误的问题,极大可能是 hexo-deployer-git 版本的问题。

# 卸载
npm un hexo-deployer-git

# 安装
npm i hexo-deployer-git@3.0.0

如果还有问题,或许你开了vpn 代理,把代理关掉重新来一次就好。这时候我们差不多了是接近成功的状态了。如果没有 hexo 部署后打开是白屏的问题,那么你已经成功了。

hexo 部署后是白屏

我们本地预览hexo没有问题,但是hexo部署发布后,我们打开却是白屏,搜遍全网,怀疑是 node 版本 的问题。

在控制台输出 node -v 查看当前安装的node版本。我目前本机是 14.16.0, 显然这个版本对于hexo来说还是高了一些,我们需要降级node版本。

我经过测试 12.21.0 这个版本是可以正常部署发布的,大家可以以这个版本为准。

Mac 切换 Node 版本

安装 N

安装 n
npm install -g n
# 如果不成功,提升权限试一下
sudo npm install -g n

修改几个本地目录的拥有者

sudo chown -R $(whoami) /usr/local/bin /usr/local/lib /usr/local/include /usr/local/share

n 会在系统目录下创建一个目录,也需要修改下它的拥有者

sudo chown -R $(whoami) /usr/local/n

如果报错了,那么我们可以先手动添加 n 文件夹。

打开Finder,然后使用command+shift+G,在弹出的目录中填写/usr/local,然后回车打开文件夹。

在这个 local 文件夹里面新建一个 名为 n 的文件夹,这一步你可能需要输入密码。

然后再次运行:

sudo chown -R $(whoami) /usr/local/n

安装指定版本的node

# 下载并安装node 10.16.3
n 10.16.3
# 下载并安装node 最新版本
n latest
# 下载并安装node 长期稳定维护版
n lts

切换node版本

输入 n 查看已缓存的版本,然后上下键选择对应的版本,回车选择就可以了。

# 列出所有缓存的node版本
n
    node/4.4.4
  ο node/8.11.1
    node/10.16.3

node -v 查看版本是否生效。

删除node版本

# 删除指定版本
n rm xxx
# 删除当前版本外的所有版本
n prune
# 卸载当前已安装的node
n uninstall
# 查看已下载的node版本列表
n ls